package com.demo.apparel.service.uniapp;

import com.demo.apparel.entity.OrderItem;
import com.demo.apparel.entity.Orders;

import java.math.BigDecimal;
import java.util.List;

public interface OrdersService {
    // 创建订单
    Orders createOrder(String userId, BigDecimal totalPrice, List<OrderItem> orderItems);

    // 更新订单状态为已支付
    void updateOrderStatusToPaid(String orderId);

    // 更新订单状态为待支付
    void updateOrderStatusToUnpaid(String orderId);

    // 查询用户的订单列表
    List<Orders> getUserOrders(String userId);

    // 查询订单详情
    Orders getOrderById(String orderId);

    // 处理支付
    boolean processPayment(String orderId, String paymentMethod, String transactionId);

    // 模拟支付成功
    boolean simulatePaymentSuccess(String orderId, String paymentTransactionId);

    // 生成支付交易号并存入数据库
    String generatePaymentTransactionId(String orderId);

    // 发起支付接口（如调用第三方支付平台）
    boolean initiatePayment(String orderId, BigDecimal amount);

    // 取消订单
    boolean cancelOrder(String orderId);

    // 删除超时未支付订单
    void deleteExpiredOrders();
}
